草庐IT

Javascript toFixed 不舍入

全部标签

c# - 在 C# 中舍入为偶数

我没有看到Math.Round的预期结果。returnMath.Round(99.96535789,2,MidpointRounding.ToEven);//returning99.97据我了解MidpointRounding.ToEven,千分之一位置的5应导致输出为99.96。不是这样吗?我什至试过了,但它也返回了99.97:returnMath.Round(99.96535789*100,MidpointRounding.ToEven)/100;我错过了什么谢谢! 最佳答案 您实际上并未处于中点。MidpointRoundin

c# - 在 C# 中,是否有一个简单的函数可以将 DateTime 舍入到最接近的 30 分钟?

例如:2011-08-1116:59变成2011-08-1116:30 最佳答案 DateTimeRoundDown(DateTimedt,TimeSpand){returnnewDateTime((dt.Ticks/d.Ticks)*d.Ticks);}示例:vardt1=RoundDown(DateTime.Parse("2011-08-1116:59"),TimeSpan.FromMinutes(30));//dt1=={11/08/201116:30:00}vardt2=RoundDown(DateTime.Parse("2

c# - 将时间值向下舍入到最接近的刻钟

有没有人有好的方法将0到59之间的数字向下舍入到最接近的15。我正在使用C#3.5。所以...1将是029等于1530就是30等等等等非常感谢。 最佳答案 x=x-(x%15)将是一个不依赖整数除法的解决方案。 关于c#-将时间值向下舍入到最接近的刻钟,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/2293186/

c# - 舍入时间跨度为 15 分钟间隔

我的代码中有一个属性,用户可以在其中以HH:mm格式输入时间跨度,例如10:3210:4415:45我想在我的属性(property)中四舍五入到最近的15分钟,但我这里没有日期时间。我只需要使用Timespan即可10:32to10:3010:44to10:4515:45to15:4501:02to01:0002:11to02:1503:22to03:1523:52to00:00尝试了所有这些解决方案,但它们涉及到日期时间HowcanIroundupthetimetothenearestXminutes?IsthereasimplefunctionforroundingaDateTi

c# - 我怎样才能向上而不是向下舍入数字?

我正在执行一些计算并将结果插入数据库。我的问题是,我得到的答案似乎是向下取整而不是向上取整。这可能看起来并不重要,但在大量销售过程中,美分开始增加!!DecimalpubCut=rrp*(percentageCutD/100);DecimalretCut=rrp*retailerCut;Decimaledcut=rrp*edpercentage;老实说,我对数字一窍不通,而整个数学功能是我在大学里试图避免的。谁能告诉我如何将这些数字向上取整而不是向下取整? 最佳答案 使用Math.Ceiling()方法。double[]values

c# - 使用 ToString ("F1"时 float 的舍入不正确)

我有一个浮点值:12345.6489当我格式化时使用:(12345.6489f).ToString("F1")然后我得到一个结果12345.7但这是不正确的,因为它应该是12345.6。有谁知道为什么会发生这种情况?另一个提示是,在格式化之前转换为double会返回正确的结果,如果我的浮点值小一点,例如1234.6489,那么我也会得到正确的结果。 最佳答案 这好像和我前段时间问的一个问题有关:Round-twiceerrorin.NET'sDouble.ToStringmethod请注意,如果您对号码调用.ToString("G"

c# - 为什么将 DateTime 格式化为字符串会截断而不是舍入毫秒?

当Double被格式化为字符串舍入时。例如Console.WriteLine(12345.6.ToString("F0"));输出12346However,whenaDateTimeisformattedasastringtruncationisused.E.g.varci=CultureInfo.InvariantCulture;vardateTime=DateTime.Parse("2011-09-14T15:18:42.999",ci);Console.WriteLine(dateTime.ToString("o",ci));Console.WriteLine(dateTime.

c# - 将日期时间削减/舍入为一个整体,即小时/天?

是否有某种数学方法可以将DateTime缩短为精确的小时、天左右?类似于将小数舍入为int。期间.日期如果原始值为2011-01-0113:00:00,则最终值为2011-01-0100:00:00如果Period.Hour如果原始值为2011-03-1113:32:00,则最终值为2011-03-1113:00:00我在想下面这样的事情。这当然可以正常工作,但是range-array无论如何都会在稍后迭代。如果我可以直接在该迭代而不是它自己的迭代上进行计算,那就更好了。但是someType不能放入该迭代中(它取决于someType)。if(someType==Period.Day)r

C# 如何始终向下舍入到最接近的 50

我搜索了C#舍入,但未能找到我当前问题的答案。我想要做的总是向下舍入到最接近的50。我想要向下舍入的所有值都将是小数。所以635.25就是600。298.42将是250。149.56将是100。我查看过math.round但我该如何使用它才能使它始终向下舍入到最接近的50而从不向上舍入? 最佳答案 将值除以50,向下舍入到最接近的整数,然后再次乘以50:doublen=Math.Floor(n/50.0)*50.0; 关于C#如何始终向下舍入到最接近的50,我们在StackOverflo

c# - 日期时间上下舍入

我一直在寻找合适的舍入机制,但我发现似乎没有什么正是我需要的。我需要分别向上舍入和向下舍入,我还需要考虑已经四舍五入的情况。我需要进行以下舍入5:00->RoundDown()->5:005:04->RoundDown()->5:005:09->RoundDown()->5:005:10->RoundDown()->5:104:00->RoundUp()->4:004:50->RoundUp()->4:504:51->RoundUp()->5:004:56->RoundUp()->5:00基本上,我需要它明确地将RoundUp()或RoundDown()精确到最接近的10分钟,但如果它